package com.yidu.drug.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.yidu.drug.model.InventoryModel;

/**
 * 库存明细Dao
 * @author tanglei
 * @date 2018年8月22日 下午4:06:07
 * @version 1.0
 */
public interface InventoryModelMapper {
	/**
	 * 根据库存明细ID删除
	 * @param invId 传入一个库存明细ID
	 * @return 返回一个影响的行数
	 */
    int deleteByPrimaryKey(String invId);
    
    /**
     * 增加库存明细数据(一次性增加所有字段)
     * @param record 传入一个库存明细对象
     * @return 返回一个影响的行数
     */
    int insert(InventoryModel record);

    /**
     * 增加库存明细数据(可增加一个或多个字段)
     * @param record 传入一个库存明细对象
     * @return 返回一个影响的行数
     */
    int insertSelective(InventoryModel record);

    /**
     * 根据库存明细ID查询
     * @param invId 传入一个库存明细ID
     * @return 返回一个影响的行数
     */
    InventoryModel selectByPrimaryKey(String invId);
   
    /**
     * 根据库存明细ID修改数据(可修改一个或多个字段)
     * @param record 传入一个库存明细对象
     * @return 返回一个影响的行数
     */
    int updateByPrimaryKeySelective(InventoryModel record);

    /**
     * 根据库存明细ID修改数据(一次性修改全部字段)
     * @param record 传入一个库存明细对象
     * @return 返回一个影响的行数
     */
    int updateByPrimaryKey(InventoryModel record);
    
    /**
     * 根据库存ID查询药品库存明细数据
     * @param record 传入一个库存明细对象
     * @return 返回一个list集合
     */
    List<InventoryModel> findByRepIdDrug(InventoryModel record);
    /**
     * 根据分店Id和药品Id查询库存明细信息
     * @param filId 分店Id
     * @param drugId 药品Id
     * @return 返回一个list集合
     */
    List<InventoryModel> findByFilIdDrug(@Param("filId")String filId,@Param("drugId")String drugId);
    /**
     * 根据库存ID查询原材俩明细对象
     * @param record 传入一个库存明细对象
     * @return 返回一个list集合
     */
    List<InventoryModel> findByRepIdMaterials(InventoryModel record);
    
    /**
     * 根据库存Id查询总行数
     * @param record 传入一个库存明细对象
     * @return 返回一个总行数
     */
    Long findRows(InventoryModel record);

	InventoryModel findByMxNumber(String mxNumber);
	/**
	 * 根据药品id和批次号修改库存表的数量
	 * @param invNumber
	 * @param pwId
	 * @param numbers
	 * @return
	 */
	int updates(@Param("invNumber")Integer invNumber,@Param("pwId")String pwId,@Param("numbers")String numbers,@Param("repId")String repId);
	/**
	 * 根据库存表查询库存详情表的所有数量
	 * @param repId
	 * @return
	 */
	public Integer findAllsl(String repId);
	/**
	 * 根据库存id和批次号以及药品id查询数量
	 * @param pwId
	 * @param numbers
	 * @param repId
	 * @return
	 */
	public Integer kcsl(@Param("pwId")String pwId,@Param("numbers")String numbers,@Param("repId")String repId);
	/**
	 * 根据分公司ID业务id和批次号查询库存详情
	 * @param pwId 业务id
	 * @param filId 公司ID
	 * @param numbers 批次号
	 * @return 库存明细对象
	 */
	InventoryModel findByFilIdPwIdNumbers(@Param("pwId")String pwId,@Param("filId")String filId,@Param("numbers")String numbers);
}